{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Going to Mars with Python using poliastro\n",
    "\n",
    "<img src=\"http://poliastro.github.io/_images/logo_text.svg\" width=\"70%\" />\n",
    "\n",
    "This is an example on how to use [poliastro](https://github.com/poliastro/poliastro), a little library I've been working on to use in my Astrodynamics lessons. It features conversion between **classical orbital elements** and position vectors, propagation of **Keplerian orbits**, initial orbit determination using the solution of the **Lambert's problem** and **orbit plotting**.\n",
    "\n",
    "In this example we're going to draw the trajectory of the mission [Mars Science Laboratory (MSL)](http://mars.jpl.nasa.gov/msl/), which carried the rover Curiosity to the surface of Mars in a period of something less than 9 months.\n",
    "\n",
    "**Note**: This is a very simplistic analysis which doesn't take into account many important factors of the mission, but can serve as an starting point for more serious computations (and as a side effect produces a beautiful plot at the end)."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "First of all, we import the necessary modules. Apart from poliastro we will make use of astropy to deal with physical units and time definitions and jplephem to compute the positions and velocities of the planets."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "%matplotlib notebook\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "from mpl_toolkits.mplot3d import Axes3D\n",
    "\n",
    "import astropy.units as u\n",
    "from astropy import time\n",
    "\n",
    "from poliastro import iod\n",
    "from poliastro.bodies import Sun\n",
    "from poliastro.twobody import Orbit"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We need a binary file from NASA called *SPICE kernel* to compute the position and velocities of the planets. Astropy downloads it for us:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<ScienceState solar_system_ephemeris: 'jpl'>"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from astropy.coordinates import solar_system_ephemeris\n",
    "from poliastro.ephem import get_body_ephem\n",
    "\n",
    "solar_system_ephemeris.set(\"jpl\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The initial data was gathered from Wikipedia: the date of the launch was on **November 26, 2011 at 15:02 UTC** and landing was on **August 6, 2012 at 05:17 UTC**. We compute then the time of flight, which is exactly what it sounds. It is a crucial parameter of the mission."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$6086.2503 \\; \\mathrm{h}$"
      ],
      "text/plain": [
       "<Quantity 6086.250277777778 h>"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Initial data\n",
    "N = 50\n",
    "\n",
    "date_launch = time.Time('2011-11-26 15:02', scale='utc')\n",
    "date_arrival = time.Time('2012-08-06 05:17', scale='utc')\n",
    "tof = (date_arrival - date_launch)\n",
    "\n",
    "tof.to(u.h)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "With the date of launch and the date of landing we can compute the [Julian days](http://www.wikiwand.com/en/Julian_day). The Julian day is an integer assigned to a date, and it's useful for not having to deal with leap years, changes of calendar and other messy stuff. It is measured from around 4713 BC so it is a pretty big number, as we'll see:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# Calculate vector of times from launch and arrival Julian days\n",
    "dt = (date_arrival - date_launch) / N\n",
    "\n",
    "# Idea from http://docs.astropy.org/en/stable/time/#getting-started\n",
    "times_vector = date_launch + dt * np.arange(N + 1)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Once we have the vector of times we can use `get_body_ephem` to compute the array of positions and velocities of the Earth and Mars."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "rr_earth, vv_earth = get_body_ephem(\"earth\", times_vector)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$[64600643,~1.2142487 \\times 10^{8},~52640047] \\; \\mathrm{km}$"
      ],
      "text/plain": [
       "<Quantity [  6.46006434e+07,  1.21424866e+08,  5.26400473e+07] km>"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "rr_earth[:, 0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$[-2352414.3,~1032013.3,~447276.92] \\; \\mathrm{\\frac{km}{d}}$"
      ],
      "text/plain": [
       "<Quantity [-2352414.27027126, 1032013.3380897 ,  447276.92493007] km / d>"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "vv_earth[:, 0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "rr_mars, vv_mars = get_body_ephem(\"mars\", times_vector)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$[-1.2314963 \\times 10^{8},~1.9075251 \\times 10^{8},~90809654] \\; \\mathrm{km}$"
      ],
      "text/plain": [
       "<Quantity [ -1.23149631e+08,  1.90752511e+08,  9.08096543e+07] km>"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "rr_mars[:, 0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$[-1730626.7,~-811069.96,~-325255.38] \\; \\mathrm{\\frac{km}{d}}$"
      ],
      "text/plain": [
       "<Quantity [-1730626.66251077, -811069.96095538, -325255.37513281] km / d>"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "vv_mars[:, 0]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "To compute the transfer orbit, we have the useful function `lambert`: according to a theorem with the same name, *the transfer orbit between two points in space only depends on those two points and the time it takes to go from one to the other*. We have the starting and final position and we have the time of flight: there we go!"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Compute the transfer orbit!\n",
    "r0 = rr_earth[:, 0]\n",
    "rf = rr_mars[:, -1]\n",
    "\n",
    "(va, vb), = iod.lambert(Sun.k, r0, rf, tof)\n",
    "\n",
    "ss0_trans = Orbit.from_vectors(Sun, r0, va, date_launch)\n",
    "ssf_trans = Orbit.from_vectors(Sun, rf, vb, date_arrival)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The rest of the code is boilerplate we need for a beautiful plot: we retrieve all the intermediate positions of the transfer orbit, and compute some more vectors outside of the mission time frame to decorate the plot."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<div class=\"alert alert-info\">This code sucks. Pull requests welcome!</div>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# Extract whole orbit of Earth, Mars and transfer (for plotting)\n",
    "rr_trans = np.zeros_like(rr_earth)\n",
    "rr_trans[:, 0] = r0\n",
    "for ii in range(1, len(times_vector)):\n",
    "    tof = (times_vector[ii] - times_vector[0]).to(u.day)\n",
    "    rr_trans[:, ii] = ss0_trans.propagate(tof).r"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Now compute the trail, better backwards\n",
    "date_final = date_arrival - 1 * u.year\n",
    "dt2 = (date_final - date_launch) / N\n",
    "\n",
    "times_rest_vector = date_launch + dt2 * np.arange(N + 1)\n",
    "rr_earth_rest, _ = get_body_ephem(\"earth\", times_rest_vector)\n",
    "rr_mars_rest, _ = get_body_ephem(\"mars\", times_rest_vector)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<div class=\"alert alert-info\">The positions are in the <strong>International Standard Reference Frame</strong>, which has the Equator as the fundamental plane</div>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "And finally, we can plot the figure! There is no more magic here, just passing the position vectors to matplotlib `plot` function and adding some style to the plot."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/javascript": [
       "/* Put everything inside the global mpl namespace */\n",
       "window.mpl = {};\n",
       "\n",
       "\n",
       "mpl.get_websocket_type = function() {\n",
       "    if (typeof(WebSocket) !== 'undefined') {\n",
       "        return WebSocket;\n",
       "    } else if (typeof(MozWebSocket) !== 'undefined') {\n",
       "        return MozWebSocket;\n",
       "    } else {\n",
       "        alert('Your browser does not have WebSocket support.' +\n",
       "              'Please try Chrome, Safari or Firefox ≥ 6. ' +\n",
       "              'Firefox 4 and 5 are also supported but you ' +\n",
       "              'have to enable WebSockets in about:config.');\n",
       "    };\n",
       "}\n",
       "\n",
       "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n",
       "    this.id = figure_id;\n",
       "\n",
       "    this.ws = websocket;\n",
       "\n",
       "    this.supports_binary = (this.ws.binaryType != undefined);\n",
       "\n",
       "    if (!this.supports_binary) {\n",
       "        var warnings = document.getElementById(\"mpl-warnings\");\n",
       "        if (warnings) {\n",
       "            warnings.style.display = 'block';\n",
       "            warnings.textContent = (\n",
       "                \"This browser does not support binary websocket messages. \" +\n",
       "                    \"Performance may be slow.\");\n",
       "        }\n",
       "    }\n",
       "\n",
       "    this.imageObj = new Image();\n",
       "\n",
       "    this.context = undefined;\n",
       "    this.message = undefined;\n",
       "    this.canvas = undefined;\n",
       "    this.rubberband_canvas = undefined;\n",
       "    this.rubberband_context = undefined;\n",
       "    this.format_dropdown = undefined;\n",
       "\n",
       "    this.image_mode = 'full';\n",
       "\n",
       "    this.root = $('<div/>');\n",
       "    this._root_extra_style(this.root)\n",
       "    this.root.attr('style', 'display: inline-block');\n",
       "\n",
       "    $(parent_element).append(this.root);\n",
       "\n",
       "    this._init_header(this);\n",
       "    this._init_canvas(this);\n",
       "    this._init_toolbar(this);\n",
       "\n",
       "    var fig = this;\n",
       "\n",
       "    this.waiting = false;\n",
       "\n",
       "    this.ws.onopen =  function () {\n",
       "            fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n",
       "            fig.send_message(\"send_image_mode\", {});\n",
       "            if (mpl.ratio != 1) {\n",
       "                fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n",
       "            }\n",
       "            fig.send_message(\"refresh\", {});\n",
       "        }\n",
       "\n",
       "    this.imageObj.onload = function() {\n",
       "            if (fig.image_mode == 'full') {\n",
       "                // Full images could contain transparency (where diff images\n",
       "                // almost always do), so we need to clear the canvas so that\n",
       "                // there is no ghosting.\n",
       "                fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n",
       "            }\n",
       "            fig.context.drawImage(fig.imageObj, 0, 0);\n",
       "        };\n",
       "\n",
       "    this.imageObj.onunload = function() {\n",
       "        this.ws.close();\n",
       "    }\n",
       "\n",
       "    this.ws.onmessage = this._make_on_message_function(this);\n",
       "\n",
       "    this.ondownload = ondownload;\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._init_header = function() {\n",
       "    var titlebar = $(\n",
       "        '<div class=\"ui-dialog-titlebar ui-widget-header ui-corner-all ' +\n",
       "        'ui-helper-clearfix\"/>');\n",
       "    var titletext = $(\n",
       "        '<div class=\"ui-dialog-title\" style=\"width: 100%; ' +\n",
       "        'text-align: center; padding: 3px;\"/>');\n",
       "    titlebar.append(titletext)\n",
       "    this.root.append(titlebar);\n",
       "    this.header = titletext[0];\n",
       "}\n",
       "\n",
       "\n",
       "\n",
       "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n",
       "\n",
       "}\n",
       "\n",
       "\n",
       "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n",
       "\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._init_canvas = function() {\n",
       "    var fig = this;\n",
       "\n",
       "    var canvas_div = $('<div/>');\n",
       "\n",
       "    canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n",
       "\n",
       "    function canvas_keyboard_event(event) {\n",
       "        return fig.key_event(event, event['data']);\n",
       "    }\n",
       "\n",
       "    canvas_div.keydown('key_press', canvas_keyboard_event);\n",
       "    canvas_div.keyup('key_release', canvas_keyboard_event);\n",
       "    this.canvas_div = canvas_div\n",
       "    this._canvas_extra_style(canvas_div)\n",
       "    this.root.append(canvas_div);\n",
       "\n",
       "    var canvas = $('<canvas/>');\n",
       "    canvas.addClass('mpl-canvas');\n",
       "    canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n",
       "\n",
       "    this.canvas = canvas[0];\n",
       "    this.context = canvas[0].getContext(\"2d\");\n",
       "\n",
       "    var backingStore = this.context.backingStorePixelRatio ||\n",
       "\tthis.context.webkitBackingStorePixelRatio ||\n",
       "\tthis.context.mozBackingStorePixelRatio ||\n",
       "\tthis.context.msBackingStorePixelRatio ||\n",
       "\tthis.context.oBackingStorePixelRatio ||\n",
       "\tthis.context.backingStorePixelRatio || 1;\n",
       "\n",
       "    mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n",
       "\n",
       "    var rubberband = $('<canvas/>');\n",
       "    rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n",
       "\n",
       "    var pass_mouse_events = true;\n",
       "\n",
       "    canvas_div.resizable({\n",
       "        start: function(event, ui) {\n",
       "            pass_mouse_events = false;\n",
       "        },\n",
       "        resize: function(event, ui) {\n",
       "            fig.request_resize(ui.size.width, ui.size.height);\n",
       "        },\n",
       "        stop: function(event, ui) {\n",
       "            pass_mouse_events = true;\n",
       "            fig.request_resize(ui.size.width, ui.size.height);\n",
       "        },\n",
       "    });\n",
       "\n",
       "    function mouse_event_fn(event) {\n",
       "        if (pass_mouse_events)\n",
       "            return fig.mouse_event(event, event['data']);\n",
       "    }\n",
       "\n",
       "    rubberband.mousedown('button_press', mouse_event_fn);\n",
       "    rubberband.mouseup('button_release', mouse_event_fn);\n",
       "    // Throttle sequential mouse events to 1 every 20ms.\n",
       "    rubberband.mousemove('motion_notify', mouse_event_fn);\n",
       "\n",
       "    rubberband.mouseenter('figure_enter', mouse_event_fn);\n",
       "    rubberband.mouseleave('figure_leave', mouse_event_fn);\n",
       "\n",
       "    canvas_div.on(\"wheel\", function (event) {\n",
       "        event = event.originalEvent;\n",
       "        event['data'] = 'scroll'\n",
       "        if (event.deltaY < 0) {\n",
       "            event.step = 1;\n",
       "        } else {\n",
       "            event.step = -1;\n",
       "        }\n",
       "        mouse_event_fn(event);\n",
       "    });\n",
       "\n",
       "    canvas_div.append(canvas);\n",
       "    canvas_div.append(rubberband);\n",
       "\n",
       "    this.rubberband = rubberband;\n",
       "    this.rubberband_canvas = rubberband[0];\n",
       "    this.rubberband_context = rubberband[0].getContext(\"2d\");\n",
       "    this.rubberband_context.strokeStyle = \"#000000\";\n",
       "\n",
       "    this._resize_canvas = function(width, height) {\n",
       "        // Keep the size of the canvas, canvas container, and rubber band\n",
       "        // canvas in synch.\n",
       "        canvas_div.css('width', width)\n",
       "        canvas_div.css('height', height)\n",
       "\n",
       "        canvas.attr('width', width * mpl.ratio);\n",
       "        canvas.attr('height', height * mpl.ratio);\n",
       "        canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n",
       "\n",
       "        rubberband.attr('width', width);\n",
       "        rubberband.attr('height', height);\n",
       "    }\n",
       "\n",
       "    // Set the figure to an initial 600x600px, this will subsequently be updated\n",
       "    // upon first draw.\n",
       "    this._resize_canvas(600, 600);\n",
       "\n",
       "    // Disable right mouse context menu.\n",
       "    $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n",
       "        return false;\n",
       "    });\n",
       "\n",
       "    function set_focus () {\n",
       "        canvas.focus();\n",
       "        canvas_div.focus();\n",
       "    }\n",
       "\n",
       "    window.setTimeout(set_focus, 100);\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._init_toolbar = function() {\n",
       "    var fig = this;\n",
       "\n",
       "    var nav_element = $('<div/>')\n",
       "    nav_element.attr('style', 'width: 100%');\n",
       "    this.root.append(nav_element);\n",
       "\n",
       "    // Define a callback function for later on.\n",
       "    function toolbar_event(event) {\n",
       "        return fig.toolbar_button_onclick(event['data']);\n",
       "    }\n",
       "    function toolbar_mouse_event(event) {\n",
       "        return fig.toolbar_button_onmouseover(event['data']);\n",
       "    }\n",
       "\n",
       "    for(var toolbar_ind in mpl.toolbar_items) {\n",
       "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
       "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
       "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
       "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
       "\n",
       "        if (!name) {\n",
       "            // put a spacer in here.\n",
       "            continue;\n",
       "        }\n",
       "        var button = $('<button/>');\n",
       "        button.addClass('ui-button ui-widget ui-state-default ui-corner-all ' +\n",
       "                        'ui-button-icon-only');\n",
       "        button.attr('role', 'button');\n",
       "        button.attr('aria-disabled', 'false');\n",
       "        button.click(method_name, toolbar_event);\n",
       "        button.mouseover(tooltip, toolbar_mouse_event);\n",
       "\n",
       "        var icon_img = $('<span/>');\n",
       "        icon_img.addClass('ui-button-icon-primary ui-icon');\n",
       "        icon_img.addClass(image);\n",
       "        icon_img.addClass('ui-corner-all');\n",
       "\n",
       "        var tooltip_span = $('<span/>');\n",
       "        tooltip_span.addClass('ui-button-text');\n",
       "        tooltip_span.html(tooltip);\n",
       "\n",
       "        button.append(icon_img);\n",
       "        button.append(tooltip_span);\n",
       "\n",
       "        nav_element.append(button);\n",
       "    }\n",
       "\n",
       "    var fmt_picker_span = $('<span/>');\n",
       "\n",
       "    var fmt_picker = $('<select/>');\n",
       "    fmt_picker.addClass('mpl-toolbar-option ui-widget ui-widget-content');\n",
       "    fmt_picker_span.append(fmt_picker);\n",
       "    nav_element.append(fmt_picker_span);\n",
       "    this.format_dropdown = fmt_picker[0];\n",
       "\n",
       "    for (var ind in mpl.extensions) {\n",
       "        var fmt = mpl.extensions[ind];\n",
       "        var option = $(\n",
       "            '<option/>', {selected: fmt === mpl.default_extension}).html(fmt);\n",
       "        fmt_picker.append(option)\n",
       "    }\n",
       "\n",
       "    // Add hover states to the ui-buttons\n",
       "    $( \".ui-button\" ).hover(\n",
       "        function() { $(this).addClass(\"ui-state-hover\");},\n",
       "        function() { $(this).removeClass(\"ui-state-hover\");}\n",
       "    );\n",
       "\n",
       "    var status_bar = $('<span class=\"mpl-message\"/>');\n",
       "    nav_element.append(status_bar);\n",
       "    this.message = status_bar[0];\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.request_resize = function(x_pixels, y_pixels) {\n",
       "    // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n",
       "    // which will in turn request a refresh of the image.\n",
       "    this.send_message('resize', {'width': x_pixels, 'height': y_pixels});\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.send_message = function(type, properties) {\n",
       "    properties['type'] = type;\n",
       "    properties['figure_id'] = this.id;\n",
       "    this.ws.send(JSON.stringify(properties));\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.send_draw_message = function() {\n",
       "    if (!this.waiting) {\n",
       "        this.waiting = true;\n",
       "        this.ws.send(JSON.stringify({type: \"draw\", figure_id: this.id}));\n",
       "    }\n",
       "}\n",
       "\n",
       "\n",
       "mpl.figure.prototype.handle_save = function(fig, msg) {\n",
       "    var format_dropdown = fig.format_dropdown;\n",
       "    var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n",
       "    fig.ondownload(fig, format);\n",
       "}\n",
       "\n",
       "\n",
       "mpl.figure.prototype.handle_resize = function(fig, msg) {\n",
       "    var size = msg['size'];\n",
       "    if (size[0] != fig.canvas.width || size[1] != fig.canvas.height) {\n",
       "        fig._resize_canvas(size[0], size[1]);\n",
       "        fig.send_message(\"refresh\", {});\n",
       "    };\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.handle_rubberband = function(fig, msg) {\n",
       "    var x0 = msg['x0'] / mpl.ratio;\n",
       "    var y0 = (fig.canvas.height - msg['y0']) / mpl.ratio;\n",
       "    var x1 = msg['x1'] / mpl.ratio;\n",
       "    var y1 = (fig.canvas.height - msg['y1']) / mpl.ratio;\n",
       "    x0 = Math.floor(x0) + 0.5;\n",
       "    y0 = Math.floor(y0) + 0.5;\n",
       "    x1 = Math.floor(x1) + 0.5;\n",
       "    y1 = Math.floor(y1) + 0.5;\n",
       "    var min_x = Math.min(x0, x1);\n",
       "    var min_y = Math.min(y0, y1);\n",
       "    var width = Math.abs(x1 - x0);\n",
       "    var height = Math.abs(y1 - y0);\n",
       "\n",
       "    fig.rubberband_context.clearRect(\n",
       "        0, 0, fig.canvas.width, fig.canvas.height);\n",
       "\n",
       "    fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.handle_figure_label = function(fig, msg) {\n",
       "    // Updates the figure title.\n",
       "    fig.header.textContent = msg['label'];\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.handle_cursor = function(fig, msg) {\n",
       "    var cursor = msg['cursor'];\n",
       "    switch(cursor)\n",
       "    {\n",
       "    case 0:\n",
       "        cursor = 'pointer';\n",
       "        break;\n",
       "    case 1:\n",
       "        cursor = 'default';\n",
       "        break;\n",
       "    case 2:\n",
       "        cursor = 'crosshair';\n",
       "        break;\n",
       "    case 3:\n",
       "        cursor = 'move';\n",
       "        break;\n",
       "    }\n",
       "    fig.rubberband_canvas.style.cursor = cursor;\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.handle_message = function(fig, msg) {\n",
       "    fig.message.textContent = msg['message'];\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.handle_draw = function(fig, msg) {\n",
       "    // Request the server to send over a new figure.\n",
       "    fig.send_draw_message();\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.handle_image_mode = function(fig, msg) {\n",
       "    fig.image_mode = msg['mode'];\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.updated_canvas_event = function() {\n",
       "    // Called whenever the canvas gets updated.\n",
       "    this.send_message(\"ack\", {});\n",
       "}\n",
       "\n",
       "// A function to construct a web socket function for onmessage handling.\n",
       "// Called in the figure constructor.\n",
       "mpl.figure.prototype._make_on_message_function = function(fig) {\n",
       "    return function socket_on_message(evt) {\n",
       "        if (evt.data instanceof Blob) {\n",
       "            /* FIXME: We get \"Resource interpreted as Image but\n",
       "             * transferred with MIME type text/plain:\" errors on\n",
       "             * Chrome.  But how to set the MIME type?  It doesn't seem\n",
       "             * to be part of the websocket stream */\n",
       "            evt.data.type = \"image/png\";\n",
       "\n",
       "            /* Free the memory for the previous frames */\n",
       "            if (fig.imageObj.src) {\n",
       "                (window.URL || window.webkitURL).revokeObjectURL(\n",
       "                    fig.imageObj.src);\n",
       "            }\n",
       "\n",
       "            fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n",
       "                evt.data);\n",
       "            fig.updated_canvas_event();\n",
       "            fig.waiting = false;\n",
       "            return;\n",
       "        }\n",
       "        else if (typeof evt.data === 'string' && evt.data.slice(0, 21) == \"data:image/png;base64\") {\n",
       "            fig.imageObj.src = evt.data;\n",
       "            fig.updated_canvas_event();\n",
       "            fig.waiting = false;\n",
       "            return;\n",
       "        }\n",
       "\n",
       "        var msg = JSON.parse(evt.data);\n",
       "        var msg_type = msg['type'];\n",
       "\n",
       "        // Call the  \"handle_{type}\" callback, which takes\n",
       "        // the figure and JSON message as its only arguments.\n",
       "        try {\n",
       "            var callback = fig[\"handle_\" + msg_type];\n",
       "        } catch (e) {\n",
       "            console.log(\"No handler for the '\" + msg_type + \"' message type: \", msg);\n",
       "            return;\n",
       "        }\n",
       "\n",
       "        if (callback) {\n",
       "            try {\n",
       "                // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n",
       "                callback(fig, msg);\n",
       "            } catch (e) {\n",
       "                console.log(\"Exception inside the 'handler_\" + msg_type + \"' callback:\", e, e.stack, msg);\n",
       "            }\n",
       "        }\n",
       "    };\n",
       "}\n",
       "\n",
       "// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\n",
       "mpl.findpos = function(e) {\n",
       "    //this section is from http://www.quirksmode.org/js/events_properties.html\n",
       "    var targ;\n",
       "    if (!e)\n",
       "        e = window.event;\n",
       "    if (e.target)\n",
       "        targ = e.target;\n",
       "    else if (e.srcElement)\n",
       "        targ = e.srcElement;\n",
       "    if (targ.nodeType == 3) // defeat Safari bug\n",
       "        targ = targ.parentNode;\n",
       "\n",
       "    // jQuery normalizes the pageX and pageY\n",
       "    // pageX,Y are the mouse positions relative to the document\n",
       "    // offset() returns the position of the element relative to the document\n",
       "    var x = e.pageX - $(targ).offset().left;\n",
       "    var y = e.pageY - $(targ).offset().top;\n",
       "\n",
       "    return {\"x\": x, \"y\": y};\n",
       "};\n",
       "\n",
       "/*\n",
       " * return a copy of an object with only non-object keys\n",
       " * we need this to avoid circular references\n",
       " * http://stackoverflow.com/a/24161582/3208463\n",
       " */\n",
       "function simpleKeys (original) {\n",
       "  return Object.keys(original).reduce(function (obj, key) {\n",
       "    if (typeof original[key] !== 'object')\n",
       "        obj[key] = original[key]\n",
       "    return obj;\n",
       "  }, {});\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.mouse_event = function(event, name) {\n",
       "    var canvas_pos = mpl.findpos(event)\n",
       "\n",
       "    if (name === 'button_press')\n",
       "    {\n",
       "        this.canvas.focus();\n",
       "        this.canvas_div.focus();\n",
       "    }\n",
       "\n",
       "    var x = canvas_pos.x * mpl.ratio;\n",
       "    var y = canvas_pos.y * mpl.ratio;\n",
       "\n",
       "    this.send_message(name, {x: x, y: y, button: event.button,\n",
       "                             step: event.step,\n",
       "                             guiEvent: simpleKeys(event)});\n",
       "\n",
       "    /* This prevents the web browser from automatically changing to\n",
       "     * the text insertion cursor when the button is pressed.  We want\n",
       "     * to control all of the cursor setting manually through the\n",
       "     * 'cursor' event from matplotlib */\n",
       "    event.preventDefault();\n",
       "    return false;\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._key_event_extra = function(event, name) {\n",
       "    // Handle any extra behaviour associated with a key event\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.key_event = function(event, name) {\n",
       "\n",
       "    // Prevent repeat events\n",
       "    if (name == 'key_press')\n",
       "    {\n",
       "        if (event.which === this._key)\n",
       "            return;\n",
       "        else\n",
       "            this._key = event.which;\n",
       "    }\n",
       "    if (name == 'key_release')\n",
       "        this._key = null;\n",
       "\n",
       "    var value = '';\n",
       "    if (event.ctrlKey && event.which != 17)\n",
       "        value += \"ctrl+\";\n",
       "    if (event.altKey && event.which != 18)\n",
       "        value += \"alt+\";\n",
       "    if (event.shiftKey && event.which != 16)\n",
       "        value += \"shift+\";\n",
       "\n",
       "    value += 'k';\n",
       "    value += event.which.toString();\n",
       "\n",
       "    this._key_event_extra(event, name);\n",
       "\n",
       "    this.send_message(name, {key: value,\n",
       "                             guiEvent: simpleKeys(event)});\n",
       "    return false;\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.toolbar_button_onclick = function(name) {\n",
       "    if (name == 'download') {\n",
       "        this.handle_save(this, null);\n",
       "    } else {\n",
       "        this.send_message(\"toolbar_button\", {name: name});\n",
       "    }\n",
       "};\n",
       "\n",
       "mpl.figure.prototype.toolbar_button_onmouseover = function(tooltip) {\n",
       "    this.message.textContent = tooltip;\n",
       "};\n",
       "mpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to  previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Pan axes with left mouse, zoom with right\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n",
       "\n",
       "mpl.extensions = [\"eps\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\"];\n",
       "\n",
       "mpl.default_extension = \"png\";var comm_websocket_adapter = function(comm) {\n",
       "    // Create a \"websocket\"-like object which calls the given IPython comm\n",
       "    // object with the appropriate methods. Currently this is a non binary\n",
       "    // socket, so there is still some room for performance tuning.\n",
       "    var ws = {};\n",
       "\n",
       "    ws.close = function() {\n",
       "        comm.close()\n",
       "    };\n",
       "    ws.send = function(m) {\n",
       "        //console.log('sending', m);\n",
       "        comm.send(m);\n",
       "    };\n",
       "    // Register the callback with on_msg.\n",
       "    comm.on_msg(function(msg) {\n",
       "        //console.log('receiving', msg['content']['data'], msg);\n",
       "        // Pass the mpl event to the overriden (by mpl) onmessage function.\n",
       "        ws.onmessage(msg['content']['data'])\n",
       "    });\n",
       "    return ws;\n",
       "}\n",
       "\n",
       "mpl.mpl_figure_comm = function(comm, msg) {\n",
       "    // This is the function which gets called when the mpl process\n",
       "    // starts-up an IPython Comm through the \"matplotlib\" channel.\n",
       "\n",
       "    var id = msg.content.data.id;\n",
       "    // Get hold of the div created by the display call when the Comm\n",
       "    // socket was opened in Python.\n",
       "    var element = $(\"#\" + id);\n",
       "    var ws_proxy = comm_websocket_adapter(comm)\n",
       "\n",
       "    function ondownload(figure, format) {\n",
       "        window.open(figure.imageObj.src);\n",
       "    }\n",
       "\n",
       "    var fig = new mpl.figure(id, ws_proxy,\n",
       "                           ondownload,\n",
       "                           element.get(0));\n",
       "\n",
       "    // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n",
       "    // web socket which is closed, not our websocket->open comm proxy.\n",
       "    ws_proxy.onopen();\n",
       "\n",
       "    fig.parent_element = element.get(0);\n",
       "    fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n",
       "    if (!fig.cell_info) {\n",
       "        console.error(\"Failed to find cell for figure\", id, fig);\n",
       "        return;\n",
       "    }\n",
       "\n",
       "    var output_index = fig.cell_info[2]\n",
       "    var cell = fig.cell_info[0];\n",
       "\n",
       "};\n",
       "\n",
       "mpl.figure.prototype.handle_close = function(fig, msg) {\n",
       "    var width = fig.canvas.width/mpl.ratio\n",
       "    fig.root.unbind('remove')\n",
       "\n",
       "    // Update the output cell to use the data from the current canvas.\n",
       "    fig.push_to_output();\n",
       "    var dataURL = fig.canvas.toDataURL();\n",
       "    // Re-enable the keyboard manager in IPython - without this line, in FF,\n",
       "    // the notebook keyboard shortcuts fail.\n",
       "    IPython.keyboard_manager.enable()\n",
       "    $(fig.parent_element).html('<img src=\"' + dataURL + '\" width=\"' + width + '\">');\n",
       "    fig.close_ws(fig, msg);\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.close_ws = function(fig, msg){\n",
       "    fig.send_message('closing', msg);\n",
       "    // fig.ws.close()\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.push_to_output = function(remove_interactive) {\n",
       "    // Turn the data on the canvas into data in the output cell.\n",
       "    var width = this.canvas.width/mpl.ratio\n",
       "    var dataURL = this.canvas.toDataURL();\n",
       "    this.cell_info[1]['text/html'] = '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.updated_canvas_event = function() {\n",
       "    // Tell IPython that the notebook contents must change.\n",
       "    IPython.notebook.set_dirty(true);\n",
       "    this.send_message(\"ack\", {});\n",
       "    var fig = this;\n",
       "    // Wait a second, then push the new image to the DOM so\n",
       "    // that it is saved nicely (might be nice to debounce this).\n",
       "    setTimeout(function () { fig.push_to_output() }, 1000);\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._init_toolbar = function() {\n",
       "    var fig = this;\n",
       "\n",
       "    var nav_element = $('<div/>')\n",
       "    nav_element.attr('style', 'width: 100%');\n",
       "    this.root.append(nav_element);\n",
       "\n",
       "    // Define a callback function for later on.\n",
       "    function toolbar_event(event) {\n",
       "        return fig.toolbar_button_onclick(event['data']);\n",
       "    }\n",
       "    function toolbar_mouse_event(event) {\n",
       "        return fig.toolbar_button_onmouseover(event['data']);\n",
       "    }\n",
       "\n",
       "    for(var toolbar_ind in mpl.toolbar_items){\n",
       "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
       "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
       "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
       "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
       "\n",
       "        if (!name) { continue; };\n",
       "\n",
       "        var button = $('<button class=\"btn btn-default\" href=\"#\" title=\"' + name + '\"><i class=\"fa ' + image + ' fa-lg\"></i></button>');\n",
       "        button.click(method_name, toolbar_event);\n",
       "        button.mouseover(tooltip, toolbar_mouse_event);\n",
       "        nav_element.append(button);\n",
       "    }\n",
       "\n",
       "    // Add the status bar.\n",
       "    var status_bar = $('<span class=\"mpl-message\" style=\"text-align:right; float: right;\"/>');\n",
       "    nav_element.append(status_bar);\n",
       "    this.message = status_bar[0];\n",
       "\n",
       "    // Add the close button to the window.\n",
       "    var buttongrp = $('<div class=\"btn-group inline pull-right\"></div>');\n",
       "    var button = $('<button class=\"btn btn-mini btn-primary\" href=\"#\" title=\"Stop Interaction\"><i class=\"fa fa-power-off icon-remove icon-large\"></i></button>');\n",
       "    button.click(function (evt) { fig.handle_close(fig, {}); } );\n",
       "    button.mouseover('Stop Interaction', toolbar_mouse_event);\n",
       "    buttongrp.append(button);\n",
       "    var titlebar = this.root.find($('.ui-dialog-titlebar'));\n",
       "    titlebar.prepend(buttongrp);\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._root_extra_style = function(el){\n",
       "    var fig = this\n",
       "    el.on(\"remove\", function(){\n",
       "\tfig.close_ws(fig, {});\n",
       "    });\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._canvas_extra_style = function(el){\n",
       "    // this is important to make the div 'focusable\n",
       "    el.attr('tabindex', 0)\n",
       "    // reach out to IPython and tell the keyboard manager to turn it's self\n",
       "    // off when our div gets focus\n",
       "\n",
       "    // location in version 3\n",
       "    if (IPython.notebook.keyboard_manager) {\n",
       "        IPython.notebook.keyboard_manager.register_events(el);\n",
       "    }\n",
       "    else {\n",
       "        // location in version 2\n",
       "        IPython.keyboard_manager.register_events(el);\n",
       "    }\n",
       "\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._key_event_extra = function(event, name) {\n",
       "    var manager = IPython.notebook.keyboard_manager;\n",
       "    if (!manager)\n",
       "        manager = IPython.keyboard_manager;\n",
       "\n",
       "    // Check for shift+enter\n",
       "    if (event.shiftKey && event.which == 13) {\n",
       "        this.canvas_div.blur();\n",
       "        // select the cell after this one\n",
       "        var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n",
       "        IPython.notebook.select(index + 1);\n",
       "    }\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.handle_save = function(fig, msg) {\n",
       "    fig.ondownload(fig, null);\n",
       "}\n",
       "\n",
       "\n",
       "mpl.find_output_cell = function(html_output) {\n",
       "    // Return the cell and output element which can be found *uniquely* in the notebook.\n",
       "    // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n",
       "    // IPython event is triggered only after the cells have been serialised, which for\n",
       "    // our purposes (turning an active figure into a static one), is too late.\n",
       "    var cells = IPython.notebook.get_cells();\n",
       "    var ncells = cells.length;\n",
       "    for (var i=0; i<ncells; i++) {\n",
       "        var cell = cells[i];\n",
       "        if (cell.cell_type === 'code'){\n",
       "            for (var j=0; j<cell.output_area.outputs.length; j++) {\n",
       "                var data = cell.output_area.outputs[j];\n",
       "                if (data.data) {\n",
       "                    // IPython >= 3 moved mimebundle to data attribute of output\n",
       "                    data = data.data;\n",
       "                }\n",
       "                if (data['text/html'] == html_output) {\n",
       "                    return [cell, data, j];\n",
       "                }\n",
       "            }\n",
       "        }\n",
       "    }\n",
       "}\n",
       "\n",
       "// Register the function which deals with the matplotlib target/channel.\n",
       "// The kernel may be null if the page has been refreshed.\n",
       "if (IPython.notebook.kernel != null) {\n",
       "    IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n",
       "}\n"
      ],
      "text/plain": [
       "<IPython.core.display.Javascript object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<img src=\"data:image/png;base64,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xZNPPgnGGB5++GG8//77yM/PBzAquUQu8pycHLz55pt47733AHye0/zrX/86tm7divXr1+OYY47BWWedJVoTzsnJwfz583HhhRfigQcewOuvv45vfvObYIxhx44dOPXUU/HEE0/gr3/9Ky666CLMmTMHra2t49abMYZ169YhEAikleSR4kMPPYRbbrkFmzdvxvbt27Fu3TrMmTMHd9xxh+h+2T5rfn4+LrvsMpxwwgnClP6nn34K4HOhX3755VixYgW2bt2KjRs3YsGCBbjyyivHrL/T6cRdd90Fxhi2bt0q3DsxK5D4oXXHHXfg9ddfxy9+8QswxnD77beP+90khN7f34/TTz8df/zjH4XnXnnlFSxZsgTxeDxN6IFAAKeccgp+85vfYNu2bXjxxRdxwQUXYO7cuaIgyYTQL7zwQpxzzjl4/vnnsXXrVvh8Prz11ltCvbdv345XX30V69atw8MPPzxuvYmZBx8DEZLCq/HMmjULpaWlWZ/fsWMHrrjiCoyMjExjrWY+2aaOE1JZv3696PrevXtx0kkn4Wtf+5rou87NzQVjDBs2bEi7x+bNm4VrkUgExxxzDGbNmoUPPvhAuO7xeMAYw9NPPz1undkYQXG7du0SXpc6EgeA5557DrNmzYLP5xv3swLjT7l/9atfFf2IePXVV8EYg9vtHvMzZJtydzgcYIzhl7/8pej6448/DsZY2og5lYTQA4EAHn/8cZx77rnCc1//+tdx9913A0if5di3b1/atHkkEsHJJ5+Me+65R7iWEPqxxx6L/v5+0etvu+02XHTRRWPWj/jiMK3iIaYGXo1nwYIF+PTTT+H3+9HS0gK3242KigqYTCZotVr8+c9/xqxZs2QfoS03xhN6sviA0VE9YyztdDAAWL58OVasWJF2j9SO/7LLLsOiRYvSTglbunQpfv7zn49bZ8YYbrvtNhgMhrTi9/szvmdwcBCBQECIGVAoFON+VmB8ob/44oui63a7HYwxKJXKMT9DNqFv3rwZjDHU19eLrvf29oIxhscee2zM+yYLPVGXiooKeL1eMMZgMBgAjL1ssX//foRCIQQCAaxevVq0Fp8QeuKHQTI5OTlYsmQJKioqxqwj8cVg2uVDSA+vxnPKKadg1qxZmDVrFmbPno2jjjoK8+bNw8KFC7FkyRKcfvrpOO+880jok2QsoR911FHYv3+/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\" width=\"500\">"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Plot figure\n",
    "# To add arrows:\n",
    "# https://github.com/matplotlib/matplotlib/blob/v2.0.0/lib/matplotlib/streamplot.py#L172-L191\n",
    "\n",
    "fig = plt.figure(figsize=(5, 5))\n",
    "ax = fig.add_subplot(111, projection='3d')\n",
    "\n",
    "def plot_body(ax, r, color, size, border=False, **kwargs):\n",
    "    \"\"\"Plots body in axes object.\n",
    "\n",
    "    \"\"\"\n",
    "    return ax.plot(*r[:, None], marker='o', color=color, ms=size, mew=int(border), **kwargs)\n",
    "\n",
    "# I like color\n",
    "color_earth0 = '#3d4cd5'\n",
    "color_earthf = '#525fd5'\n",
    "color_mars0 = '#ec3941'\n",
    "color_marsf = '#ec1f28'\n",
    "color_sun = '#ffcc00'\n",
    "color_orbit = '#888888'\n",
    "color_trans = '#444444'\n",
    "\n",
    "# Plotting orbits is easy!\n",
    "ax.plot(*rr_earth.to(u.km).value, c=color_earth0)\n",
    "ax.plot(*rr_mars.to(u.km).value, c=color_mars0)\n",
    "\n",
    "ax.plot(*rr_trans.to(u.km).value, c=color_trans)\n",
    "\n",
    "ax.plot(*rr_earth_rest.to(u.km).value, ls='--', c=color_orbit)\n",
    "ax.plot(*rr_mars_rest.to(u.km).value, ls='--', c=color_orbit)\n",
    "\n",
    "# But plotting planets feels even magical!\n",
    "plot_body(ax, np.zeros(3), color_sun, 16)\n",
    "\n",
    "plot_body(ax, r0.to(u.km).value, color_earth0, 8)\n",
    "plot_body(ax, rr_earth[:, -1].to(u.km).value, color_earthf, 8)\n",
    "\n",
    "plot_body(ax, rr_mars[:, 0].to(u.km).value, color_mars0, 8)\n",
    "plot_body(ax, rf.to(u.km).value, color_marsf, 8)\n",
    "\n",
    "# Add some text\n",
    "#ax.text(-0.75e8, -3.5e8, -1.5e8, \"MSL mission:\\nfrom Earth to Mars\", size=20, ha='center', va='center', bbox={\"pad\": 30, \"lw\": 0, \"fc\": \"w\"})\n",
    "ax.text(r0[0].to(u.km).value * 1.4, r0[1].to(u.km).value * 0.4, r0[2].to(u.km).value * 1.25,\n",
    "        \"Earth at launch\\n(26 Nov)\", ha=\"left\", va=\"bottom\")#, backgroundcolor='#ffffff')\n",
    "ax.text(rf[0].to(u.km).value * 0.7, rf[1].to(u.km).value * 1.1, rf[2].to(u.km).value,\n",
    "        \"Mars at arrival\\n(6 Ago)\", ha=\"left\", va=\"top\")#, backgroundcolor='#ffffff')\n",
    "ax.text(-1.9e8, 8e7, 0, \"Transfer\\norbit\", ha=\"right\", va=\"center\")#, backgroundcolor='#ffffff')\n",
    "\n",
    "# Tune axes\n",
    "ax.set_xlim(-3e8, 3e8)\n",
    "ax.set_ylim(-3e8, 3e8)\n",
    "ax.set_zlim(-3e8, 3e8)\n",
    "\n",
    "# And finally!\n",
    "ax.view_init(30, 260)\n",
    "ax.set_title(\"MSL mission:\\nfrom Earth to Mars\")\n",
    "fig.savefig(\"trans_30_260.png\", bbox_inches='tight')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "And now, let's do it interactively!"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "def go_to_mars(offset=0., tof_=6000.):\n",
    "    # Initial data\n",
    "    N = 50\n",
    "\n",
    "    date_launch = time.Time('2011-11-26 15:02', scale='utc') + offset * u.day\n",
    "    #date_arrival = time.Time('2012-08-06 05:17', scale='utc')\n",
    "    tof = tof_ * u.h\n",
    "\n",
    "    # Calculate vector of times from launch and arrival\n",
    "    date_arrival = date_launch + tof\n",
    "    dt = (date_arrival - date_launch) / N\n",
    "\n",
    "    # Idea from http://docs.astropy.org/en/stable/time/#getting-started\n",
    "    times_vector = date_launch + dt * np.arange(N + 1)\n",
    "\n",
    "    rr_earth, vv_earth = get_body_ephem(\"earth\", times_vector)\n",
    "    rr_mars, vv_mars = get_body_ephem(\"mars\", times_vector)\n",
    "\n",
    "    # Compute the transfer orbit!\n",
    "    r0 = rr_earth[:, 0]\n",
    "    rf = rr_mars[:, -1]\n",
    "\n",
    "    (va, vb), = iod.lambert(Sun.k, r0, rf, tof)\n",
    "\n",
    "    ss0_trans = Orbit.from_vectors(Sun, r0, va, date_launch)\n",
    "    ssf_trans = Orbit.from_vectors(Sun, rf, vb, date_arrival)\n",
    "\n",
    "    # Extract whole orbit of Earth, Mars and transfer (for plotting)\n",
    "    rr_trans = np.zeros_like(rr_earth)\n",
    "    rr_trans[:, 0] = r0\n",
    "    for ii in range(1, len(times_vector)):\n",
    "        tof = (times_vector[ii] - times_vector[0]).to(u.day)\n",
    "        rr_trans[:, ii] = ss0_trans.propagate(tof).r\n",
    "\n",
    "    # Better compute backwards\n",
    "    date_final = date_arrival - 1 * u.year\n",
    "    dt2 = (date_final - date_launch) / N\n",
    "\n",
    "    times_rest_vector = date_launch + dt2 * np.arange(N + 1)\n",
    "    rr_earth_rest, _ = get_body_ephem(\"earth\", times_rest_vector)\n",
    "    rr_mars_rest, _ = get_body_ephem(\"mars\", times_rest_vector)\n",
    "\n",
    "    # Plot figure\n",
    "    fig = plt.gcf()\n",
    "    ax = plt.gca()\n",
    "    ax.cla()\n",
    "\n",
    "    def plot_body(ax, r, color, size, border=False, **kwargs):\n",
    "        \"\"\"Plots body in axes object.\n",
    "\n",
    "        \"\"\"\n",
    "        return ax.plot(*r[:, None], marker='o', color=color, ms=size, mew=int(border), **kwargs)\n",
    "\n",
    "    # I like color\n",
    "    color_earth0 = '#3d4cd5'\n",
    "    color_earthf = '#525fd5'\n",
    "    color_mars0 = '#ec3941'\n",
    "    color_marsf = '#ec1f28'\n",
    "    color_sun = '#ffcc00'\n",
    "    color_orbit = '#888888'\n",
    "    color_trans = '#444444'\n",
    "\n",
    "    # Plotting orbits is easy!\n",
    "    ax.plot(*rr_earth.to(u.km).value, color=color_earth0)\n",
    "    ax.plot(*rr_mars.to(u.km).value, color=color_mars0)\n",
    "\n",
    "    ax.plot(*rr_trans.to(u.km).value, color=color_trans)\n",
    "    ax.plot(*rr_earth_rest.to(u.km).value, ls='--', color=color_orbit)\n",
    "    ax.plot(*rr_mars_rest.to(u.km).value, ls='--', color=color_orbit)\n",
    "\n",
    "    # But plotting planets feels even magical!\n",
    "    plot_body(ax, np.zeros(3), color_sun, 16)\n",
    "\n",
    "    plot_body(ax, r0.to(u.km).value, color_earth0, 8)\n",
    "    plot_body(ax, rr_earth[:, -1].to(u.km).value, color_earthf, 8)\n",
    "\n",
    "    plot_body(ax, rr_mars[:, 0].to(u.km).value, color_mars0, 8)\n",
    "    plot_body(ax, rf.to(u.km).value, color_marsf, 8)\n",
    "\n",
    "    # Add some text\n",
    "    #ax.text(-0.75e8, -3.5e8, -1.5e8, \"MSL mission:\\nfrom Earth to Mars\", size=20, ha='center', va='center', bbox={\"pad\": 30, \"lw\": 0, \"fc\": \"w\"})\n",
    "    ax.text(r0[0].to(u.km).value * 1.4, r0[1].to(u.km).value * 0.4, r0[2].to(u.km).value * 1.25,\n",
    "            f\"Earth at launch\\n({date_launch.datetime:%b %d})\",\n",
    "            ha=\"left\", va=\"bottom\", backgroundcolor='#ffffff')\n",
    "    ax.text(rf[0].to(u.km).value * 0.7, rf[1].to(u.km).value * 1.1, rf[2].to(u.km).value,\n",
    "            f\"Mars at arrival\\n({date_arrival.datetime:%b %d})\",\n",
    "            ha=\"left\", va=\"top\", backgroundcolor='#ffffff')\n",
    "    ax.text(-1.9e8, 8e7, 0, \"Transfer\\norbit\", ha=\"right\", va=\"center\", backgroundcolor='#ffffff')\n",
    "\n",
    "    # Tune axes\n",
    "    ax.set_xlim(-3e8, 3e8)\n",
    "    ax.set_ylim(-3e8, 3e8)\n",
    "    ax.set_zlim(-3e8, 3e8)\n",
    "    ax.view_init(30, 260)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "application/javascript": [
       "/* Put everything inside the global mpl namespace */\n",
       "window.mpl = {};\n",
       "\n",
       "\n",
       "mpl.get_websocket_type = function() {\n",
       "    if (typeof(WebSocket) !== 'undefined') {\n",
       "        return WebSocket;\n",
       "    } else if (typeof(MozWebSocket) !== 'undefined') {\n",
       "        return MozWebSocket;\n",
       "    } else {\n",
       "        alert('Your browser does not have WebSocket support.' +\n",
       "              'Please try Chrome, Safari or Firefox ≥ 6. ' +\n",
       "              'Firefox 4 and 5 are also supported but you ' +\n",
       "              'have to enable WebSockets in about:config.');\n",
       "    };\n",
       "}\n",
       "\n",
       "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n",
       "    this.id = figure_id;\n",
       "\n",
       "    this.ws = websocket;\n",
       "\n",
       "    this.supports_binary = (this.ws.binaryType != undefined);\n",
       "\n",
       "    if (!this.supports_binary) {\n",
       "        var warnings = document.getElementById(\"mpl-warnings\");\n",
       "        if (warnings) {\n",
       "            warnings.style.display = 'block';\n",
       "            warnings.textContent = (\n",
       "                \"This browser does not support binary websocket messages. \" +\n",
       "                    \"Performance may be slow.\");\n",
       "        }\n",
       "    }\n",
       "\n",
       "    this.imageObj = new Image();\n",
       "\n",
       "    this.context = undefined;\n",
       "    this.message = undefined;\n",
       "    this.canvas = undefined;\n",
       "    this.rubberband_canvas = undefined;\n",
       "    this.rubberband_context = undefined;\n",
       "    this.format_dropdown = undefined;\n",
       "\n",
       "    this.image_mode = 'full';\n",
       "\n",
       "    this.root = $('<div/>');\n",
       "    this._root_extra_style(this.root)\n",
       "    this.root.attr('style', 'display: inline-block');\n",
       "\n",
       "    $(parent_element).append(this.root);\n",
       "\n",
       "    this._init_header(this);\n",
       "    this._init_canvas(this);\n",
       "    this._init_toolbar(this);\n",
       "\n",
       "    var fig = this;\n",
       "\n",
       "    this.waiting = false;\n",
       "\n",
       "    this.ws.onopen =  function () {\n",
       "            fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n",
       "            fig.send_message(\"send_image_mode\", {});\n",
       "            if (mpl.ratio != 1) {\n",
       "                fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n",
       "            }\n",
       "            fig.send_message(\"refresh\", {});\n",
       "        }\n",
       "\n",
       "    this.imageObj.onload = function() {\n",
       "            if (fig.image_mode == 'full') {\n",
       "                // Full images could contain transparency (where diff images\n",
       "                // almost always do), so we need to clear the canvas so that\n",
       "                // there is no ghosting.\n",
       "                fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n",
       "            }\n",
       "            fig.context.drawImage(fig.imageObj, 0, 0);\n",
       "        };\n",
       "\n",
       "    this.imageObj.onunload = function() {\n",
       "        this.ws.close();\n",
       "    }\n",
       "\n",
       "    this.ws.onmessage = this._make_on_message_function(this);\n",
       "\n",
       "    this.ondownload = ondownload;\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._init_header = function() {\n",
       "    var titlebar = $(\n",
       "        '<div class=\"ui-dialog-titlebar ui-widget-header ui-corner-all ' +\n",
       "        'ui-helper-clearfix\"/>');\n",
       "    var titletext = $(\n",
       "        '<div class=\"ui-dialog-title\" style=\"width: 100%; ' +\n",
       "        'text-align: center; padding: 3px;\"/>');\n",
       "    titlebar.append(titletext)\n",
       "    this.root.append(titlebar);\n",
       "    this.header = titletext[0];\n",
       "}\n",
       "\n",
       "\n",
       "\n",
       "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n",
       "\n",
       "}\n",
       "\n",
       "\n",
       "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n",
       "\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._init_canvas = function() {\n",
       "    var fig = this;\n",
       "\n",
       "    var canvas_div = $('<div/>');\n",
       "\n",
       "    canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n",
       "\n",
       "    function canvas_keyboard_event(event) {\n",
       "        return fig.key_event(event, event['data']);\n",
       "    }\n",
       "\n",
       "    canvas_div.keydown('key_press', canvas_keyboard_event);\n",
       "    canvas_div.keyup('key_release', canvas_keyboard_event);\n",
       "    this.canvas_div = canvas_div\n",
       "    this._canvas_extra_style(canvas_div)\n",
       "    this.root.append(canvas_div);\n",
       "\n",
       "    var canvas = $('<canvas/>');\n",
       "    canvas.addClass('mpl-canvas');\n",
       "    canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n",
       "\n",
       "    this.canvas = canvas[0];\n",
       "    this.context = canvas[0].getContext(\"2d\");\n",
       "\n",
       "    var backingStore = this.context.backingStorePixelRatio ||\n",
       "\tthis.context.webkitBackingStorePixelRatio ||\n",
       "\tthis.context.mozBackingStorePixelRatio ||\n",
       "\tthis.context.msBackingStorePixelRatio ||\n",
       "\tthis.context.oBackingStorePixelRatio ||\n",
       "\tthis.context.backingStorePixelRatio || 1;\n",
       "\n",
       "    mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n",
       "\n",
       "    var rubberband = $('<canvas/>');\n",
       "    rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n",
       "\n",
       "    var pass_mouse_events = true;\n",
       "\n",
       "    canvas_div.resizable({\n",
       "        start: function(event, ui) {\n",
       "            pass_mouse_events = false;\n",
       "        },\n",
       "        resize: function(event, ui) {\n",
       "            fig.request_resize(ui.size.width, ui.size.height);\n",
       "        },\n",
       "        stop: function(event, ui) {\n",
       "            pass_mouse_events = true;\n",
       "            fig.request_resize(ui.size.width, ui.size.height);\n",
       "        },\n",
       "    });\n",
       "\n",
       "    function mouse_event_fn(event) {\n",
       "        if (pass_mouse_events)\n",
       "            return fig.mouse_event(event, event['data']);\n",
       "    }\n",
       "\n",
       "    rubberband.mousedown('button_press', mouse_event_fn);\n",
       "    rubberband.mouseup('button_release', mouse_event_fn);\n",
       "    // Throttle sequential mouse events to 1 every 20ms.\n",
       "    rubberband.mousemove('motion_notify', mouse_event_fn);\n",
       "\n",
       "    rubberband.mouseenter('figure_enter', mouse_event_fn);\n",
       "    rubberband.mouseleave('figure_leave', mouse_event_fn);\n",
       "\n",
       "    canvas_div.on(\"wheel\", function (event) {\n",
       "        event = event.originalEvent;\n",
       "        event['data'] = 'scroll'\n",
       "        if (event.deltaY < 0) {\n",
       "            event.step = 1;\n",
       "        } else {\n",
       "            event.step = -1;\n",
       "        }\n",
       "        mouse_event_fn(event);\n",
       "    });\n",
       "\n",
       "    canvas_div.append(canvas);\n",
       "    canvas_div.append(rubberband);\n",
       "\n",
       "    this.rubberband = rubberband;\n",
       "    this.rubberband_canvas = rubberband[0];\n",
       "    this.rubberband_context = rubberband[0].getContext(\"2d\");\n",
       "    this.rubberband_context.strokeStyle = \"#000000\";\n",
       "\n",
       "    this._resize_canvas = function(width, height) {\n",
       "        // Keep the size of the canvas, canvas container, and rubber band\n",
       "        // canvas in synch.\n",
       "        canvas_div.css('width', width)\n",
       "        canvas_div.css('height', height)\n",
       "\n",
       "        canvas.attr('width', width * mpl.ratio);\n",
       "        canvas.attr('height', height * mpl.ratio);\n",
       "        canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n",
       "\n",
       "        rubberband.attr('width', width);\n",
       "        rubberband.attr('height', height);\n",
       "    }\n",
       "\n",
       "    // Set the figure to an initial 600x600px, this will subsequently be updated\n",
       "    // upon first draw.\n",
       "    this._resize_canvas(600, 600);\n",
       "\n",
       "    // Disable right mouse context menu.\n",
       "    $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n",
       "        return false;\n",
       "    });\n",
       "\n",
       "    function set_focus () {\n",
       "        canvas.focus();\n",
       "        canvas_div.focus();\n",
       "    }\n",
       "\n",
       "    window.setTimeout(set_focus, 100);\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._init_toolbar = function() {\n",
       "    var fig = this;\n",
       "\n",
       "    var nav_element = $('<div/>')\n",
       "    nav_element.attr('style', 'width: 100%');\n",
       "    this.root.append(nav_element);\n",
       "\n",
       "    // Define a callback function for later on.\n",
       "    function toolbar_event(event) {\n",
       "        return fig.toolbar_button_onclick(event['data']);\n",
       "    }\n",
       "    function toolbar_mouse_event(event) {\n",
       "        return fig.toolbar_button_onmouseover(event['data']);\n",
       "    }\n",
       "\n",
       "    for(var toolbar_ind in mpl.toolbar_items) {\n",
       "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
       "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
       "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
       "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
       "\n",
       "        if (!name) {\n",
       "            // put a spacer in here.\n",
       "            continue;\n",
       "        }\n",
       "        var button = $('<button/>');\n",
       "        button.addClass('ui-button ui-widget ui-state-default ui-corner-all ' +\n",
       "                        'ui-button-icon-only');\n",
       "        button.attr('role', 'button');\n",
       "        button.attr('aria-disabled', 'false');\n",
       "        button.click(method_name, toolbar_event);\n",
       "        button.mouseover(tooltip, toolbar_mouse_event);\n",
       "\n",
       "        var icon_img = $('<span/>');\n",
       "        icon_img.addClass('ui-button-icon-primary ui-icon');\n",
       "        icon_img.addClass(image);\n",
       "        icon_img.addClass('ui-corner-all');\n",
       "\n",
       "        var tooltip_span = $('<span/>');\n",
       "        tooltip_span.addClass('ui-button-text');\n",
       "        tooltip_span.html(tooltip);\n",
       "\n",
       "        button.append(icon_img);\n",
       "        button.append(tooltip_span);\n",
       "\n",
       "        nav_element.append(button);\n",
       "    }\n",
       "\n",
       "    var fmt_picker_span = $('<span/>');\n",
       "\n",
       "    var fmt_picker = $('<select/>');\n",
       "    fmt_picker.addClass('mpl-toolbar-option ui-widget ui-widget-content');\n",
       "    fmt_picker_span.append(fmt_picker);\n",
       "    nav_element.append(fmt_picker_span);\n",
       "    this.format_dropdown = fmt_picker[0];\n",
       "\n",
       "    for (var ind in mpl.extensions) {\n",
       "        var fmt = mpl.extensions[ind];\n",
       "        var option = $(\n",
       "            '<option/>', {selected: fmt === mpl.default_extension}).html(fmt);\n",
       "        fmt_picker.append(option)\n",
       "    }\n",
       "\n",
       "    // Add hover states to the ui-buttons\n",
       "    $( \".ui-button\" ).hover(\n",
       "        function() { $(this).addClass(\"ui-state-hover\");},\n",
       "        function() { $(this).removeClass(\"ui-state-hover\");}\n",
       "    );\n",
       "\n",
       "    var status_bar = $('<span class=\"mpl-message\"/>');\n",
       "    nav_element.append(status_bar);\n",
       "    this.message = status_bar[0];\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.request_resize = function(x_pixels, y_pixels) {\n",
       "    // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n",
       "    // which will in turn request a refresh of the image.\n",
       "    this.send_message('resize', {'width': x_pixels, 'height': y_pixels});\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.send_message = function(type, properties) {\n",
       "    properties['type'] = type;\n",
       "    properties['figure_id'] = this.id;\n",
       "    this.ws.send(JSON.stringify(properties));\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.send_draw_message = function() {\n",
       "    if (!this.waiting) {\n",
       "        this.waiting = true;\n",
       "        this.ws.send(JSON.stringify({type: \"draw\", figure_id: this.id}));\n",
       "    }\n",
       "}\n",
       "\n",
       "\n",
       "mpl.figure.prototype.handle_save = function(fig, msg) {\n",
       "    var format_dropdown = fig.format_dropdown;\n",
       "    var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n",
       "    fig.ondownload(fig, format);\n",
       "}\n",
       "\n",
       "\n",
       "mpl.figure.prototype.handle_resize = function(fig, msg) {\n",
       "    var size = msg['size'];\n",
       "    if (size[0] != fig.canvas.width || size[1] != fig.canvas.height) {\n",
       "        fig._resize_canvas(size[0], size[1]);\n",
       "        fig.send_message(\"refresh\", {});\n",
       "    };\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.handle_rubberband = function(fig, msg) {\n",
       "    var x0 = msg['x0'] / mpl.ratio;\n",
       "    var y0 = (fig.canvas.height - msg['y0']) / mpl.ratio;\n",
       "    var x1 = msg['x1'] / mpl.ratio;\n",
       "    var y1 = (fig.canvas.height - msg['y1']) / mpl.ratio;\n",
       "    x0 = Math.floor(x0) + 0.5;\n",
       "    y0 = Math.floor(y0) + 0.5;\n",
       "    x1 = Math.floor(x1) + 0.5;\n",
       "    y1 = Math.floor(y1) + 0.5;\n",
       "    var min_x = Math.min(x0, x1);\n",
       "    var min_y = Math.min(y0, y1);\n",
       "    var width = Math.abs(x1 - x0);\n",
       "    var height = Math.abs(y1 - y0);\n",
       "\n",
       "    fig.rubberband_context.clearRect(\n",
       "        0, 0, fig.canvas.width, fig.canvas.height);\n",
       "\n",
       "    fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.handle_figure_label = function(fig, msg) {\n",
       "    // Updates the figure title.\n",
       "    fig.header.textContent = msg['label'];\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.handle_cursor = function(fig, msg) {\n",
       "    var cursor = msg['cursor'];\n",
       "    switch(cursor)\n",
       "    {\n",
       "    case 0:\n",
       "        cursor = 'pointer';\n",
       "        break;\n",
       "    case 1:\n",
       "        cursor = 'default';\n",
       "        break;\n",
       "    case 2:\n",
       "        cursor = 'crosshair';\n",
       "        break;\n",
       "    case 3:\n",
       "        cursor = 'move';\n",
       "        break;\n",
       "    }\n",
       "    fig.rubberband_canvas.style.cursor = cursor;\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.handle_message = function(fig, msg) {\n",
       "    fig.message.textContent = msg['message'];\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.handle_draw = function(fig, msg) {\n",
       "    // Request the server to send over a new figure.\n",
       "    fig.send_draw_message();\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.handle_image_mode = function(fig, msg) {\n",
       "    fig.image_mode = msg['mode'];\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.updated_canvas_event = function() {\n",
       "    // Called whenever the canvas gets updated.\n",
       "    this.send_message(\"ack\", {});\n",
       "}\n",
       "\n",
       "// A function to construct a web socket function for onmessage handling.\n",
       "// Called in the figure constructor.\n",
       "mpl.figure.prototype._make_on_message_function = function(fig) {\n",
       "    return function socket_on_message(evt) {\n",
       "        if (evt.data instanceof Blob) {\n",
       "            /* FIXME: We get \"Resource interpreted as Image but\n",
       "             * transferred with MIME type text/plain:\" errors on\n",
       "             * Chrome.  But how to set the MIME type?  It doesn't seem\n",
       "             * to be part of the websocket stream */\n",
       "            evt.data.type = \"image/png\";\n",
       "\n",
       "            /* Free the memory for the previous frames */\n",
       "            if (fig.imageObj.src) {\n",
       "                (window.URL || window.webkitURL).revokeObjectURL(\n",
       "                    fig.imageObj.src);\n",
       "            }\n",
       "\n",
       "            fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n",
       "                evt.data);\n",
       "            fig.updated_canvas_event();\n",
       "            fig.waiting = false;\n",
       "            return;\n",
       "        }\n",
       "        else if (typeof evt.data === 'string' && evt.data.slice(0, 21) == \"data:image/png;base64\") {\n",
       "            fig.imageObj.src = evt.data;\n",
       "            fig.updated_canvas_event();\n",
       "            fig.waiting = false;\n",
       "            return;\n",
       "        }\n",
       "\n",
       "        var msg = JSON.parse(evt.data);\n",
       "        var msg_type = msg['type'];\n",
       "\n",
       "        // Call the  \"handle_{type}\" callback, which takes\n",
       "        // the figure and JSON message as its only arguments.\n",
       "        try {\n",
       "            var callback = fig[\"handle_\" + msg_type];\n",
       "        } catch (e) {\n",
       "            console.log(\"No handler for the '\" + msg_type + \"' message type: \", msg);\n",
       "            return;\n",
       "        }\n",
       "\n",
       "        if (callback) {\n",
       "            try {\n",
       "                // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n",
       "                callback(fig, msg);\n",
       "            } catch (e) {\n",
       "                console.log(\"Exception inside the 'handler_\" + msg_type + \"' callback:\", e, e.stack, msg);\n",
       "            }\n",
       "        }\n",
       "    };\n",
       "}\n",
       "\n",
       "// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\n",
       "mpl.findpos = function(e) {\n",
       "    //this section is from http://www.quirksmode.org/js/events_properties.html\n",
       "    var targ;\n",
       "    if (!e)\n",
       "        e = window.event;\n",
       "    if (e.target)\n",
       "        targ = e.target;\n",
       "    else if (e.srcElement)\n",
       "        targ = e.srcElement;\n",
       "    if (targ.nodeType == 3) // defeat Safari bug\n",
       "        targ = targ.parentNode;\n",
       "\n",
       "    // jQuery normalizes the pageX and pageY\n",
       "    // pageX,Y are the mouse positions relative to the document\n",
       "    // offset() returns the position of the element relative to the document\n",
       "    var x = e.pageX - $(targ).offset().left;\n",
       "    var y = e.pageY - $(targ).offset().top;\n",
       "\n",
       "    return {\"x\": x, \"y\": y};\n",
       "};\n",
       "\n",
       "/*\n",
       " * return a copy of an object with only non-object keys\n",
       " * we need this to avoid circular references\n",
       " * http://stackoverflow.com/a/24161582/3208463\n",
       " */\n",
       "function simpleKeys (original) {\n",
       "  return Object.keys(original).reduce(function (obj, key) {\n",
       "    if (typeof original[key] !== 'object')\n",
       "        obj[key] = original[key]\n",
       "    return obj;\n",
       "  }, {});\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.mouse_event = function(event, name) {\n",
       "    var canvas_pos = mpl.findpos(event)\n",
       "\n",
       "    if (name === 'button_press')\n",
       "    {\n",
       "        this.canvas.focus();\n",
       "        this.canvas_div.focus();\n",
       "    }\n",
       "\n",
       "    var x = canvas_pos.x * mpl.ratio;\n",
       "    var y = canvas_pos.y * mpl.ratio;\n",
       "\n",
       "    this.send_message(name, {x: x, y: y, button: event.button,\n",
       "                             step: event.step,\n",
       "                             guiEvent: simpleKeys(event)});\n",
       "\n",
       "    /* This prevents the web browser from automatically changing to\n",
       "     * the text insertion cursor when the button is pressed.  We want\n",
       "     * to control all of the cursor setting manually through the\n",
       "     * 'cursor' event from matplotlib */\n",
       "    event.preventDefault();\n",
       "    return false;\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._key_event_extra = function(event, name) {\n",
       "    // Handle any extra behaviour associated with a key event\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.key_event = function(event, name) {\n",
       "\n",
       "    // Prevent repeat events\n",
       "    if (name == 'key_press')\n",
       "    {\n",
       "        if (event.which === this._key)\n",
       "            return;\n",
       "        else\n",
       "            this._key = event.which;\n",
       "    }\n",
       "    if (name == 'key_release')\n",
       "        this._key = null;\n",
       "\n",
       "    var value = '';\n",
       "    if (event.ctrlKey && event.which != 17)\n",
       "        value += \"ctrl+\";\n",
       "    if (event.altKey && event.which != 18)\n",
       "        value += \"alt+\";\n",
       "    if (event.shiftKey && event.which != 16)\n",
       "        value += \"shift+\";\n",
       "\n",
       "    value += 'k';\n",
       "    value += event.which.toString();\n",
       "\n",
       "    this._key_event_extra(event, name);\n",
       "\n",
       "    this.send_message(name, {key: value,\n",
       "                             guiEvent: simpleKeys(event)});\n",
       "    return false;\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.toolbar_button_onclick = function(name) {\n",
       "    if (name == 'download') {\n",
       "        this.handle_save(this, null);\n",
       "    } else {\n",
       "        this.send_message(\"toolbar_button\", {name: name});\n",
       "    }\n",
       "};\n",
       "\n",
       "mpl.figure.prototype.toolbar_button_onmouseover = function(tooltip) {\n",
       "    this.message.textContent = tooltip;\n",
       "};\n",
       "mpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to  previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Pan axes with left mouse, zoom with right\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n",
       "\n",
       "mpl.extensions = [\"eps\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\"];\n",
       "\n",
       "mpl.default_extension = \"png\";var comm_websocket_adapter = function(comm) {\n",
       "    // Create a \"websocket\"-like object which calls the given IPython comm\n",
       "    // object with the appropriate methods. Currently this is a non binary\n",
       "    // socket, so there is still some room for performance tuning.\n",
       "    var ws = {};\n",
       "\n",
       "    ws.close = function() {\n",
       "        comm.close()\n",
       "    };\n",
       "    ws.send = function(m) {\n",
       "        //console.log('sending', m);\n",
       "        comm.send(m);\n",
       "    };\n",
       "    // Register the callback with on_msg.\n",
       "    comm.on_msg(function(msg) {\n",
       "        //console.log('receiving', msg['content']['data'], msg);\n",
       "        // Pass the mpl event to the overriden (by mpl) onmessage function.\n",
       "        ws.onmessage(msg['content']['data'])\n",
       "    });\n",
       "    return ws;\n",
       "}\n",
       "\n",
       "mpl.mpl_figure_comm = function(comm, msg) {\n",
       "    // This is the function which gets called when the mpl process\n",
       "    // starts-up an IPython Comm through the \"matplotlib\" channel.\n",
       "\n",
       "    var id = msg.content.data.id;\n",
       "    // Get hold of the div created by the display call when the Comm\n",
       "    // socket was opened in Python.\n",
       "    var element = $(\"#\" + id);\n",
       "    var ws_proxy = comm_websocket_adapter(comm)\n",
       "\n",
       "    function ondownload(figure, format) {\n",
       "        window.open(figure.imageObj.src);\n",
       "    }\n",
       "\n",
       "    var fig = new mpl.figure(id, ws_proxy,\n",
       "                           ondownload,\n",
       "                           element.get(0));\n",
       "\n",
       "    // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n",
       "    // web socket which is closed, not our websocket->open comm proxy.\n",
       "    ws_proxy.onopen();\n",
       "\n",
       "    fig.parent_element = element.get(0);\n",
       "    fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n",
       "    if (!fig.cell_info) {\n",
       "        console.error(\"Failed to find cell for figure\", id, fig);\n",
       "        return;\n",
       "    }\n",
       "\n",
       "    var output_index = fig.cell_info[2]\n",
       "    var cell = fig.cell_info[0];\n",
       "\n",
       "};\n",
       "\n",
       "mpl.figure.prototype.handle_close = function(fig, msg) {\n",
       "    var width = fig.canvas.width/mpl.ratio\n",
       "    fig.root.unbind('remove')\n",
       "\n",
       "    // Update the output cell to use the data from the current canvas.\n",
       "    fig.push_to_output();\n",
       "    var dataURL = fig.canvas.toDataURL();\n",
       "    // Re-enable the keyboard manager in IPython - without this line, in FF,\n",
       "    // the notebook keyboard shortcuts fail.\n",
       "    IPython.keyboard_manager.enable()\n",
       "    $(fig.parent_element).html('<img src=\"' + dataURL + '\" width=\"' + width + '\">');\n",
       "    fig.close_ws(fig, msg);\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.close_ws = function(fig, msg){\n",
       "    fig.send_message('closing', msg);\n",
       "    // fig.ws.close()\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.push_to_output = function(remove_interactive) {\n",
       "    // Turn the data on the canvas into data in the output cell.\n",
       "    var width = this.canvas.width/mpl.ratio\n",
       "    var dataURL = this.canvas.toDataURL();\n",
       "    this.cell_info[1]['text/html'] = '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.updated_canvas_event = function() {\n",
       "    // Tell IPython that the notebook contents must change.\n",
       "    IPython.notebook.set_dirty(true);\n",
       "    this.send_message(\"ack\", {});\n",
       "    var fig = this;\n",
       "    // Wait a second, then push the new image to the DOM so\n",
       "    // that it is saved nicely (might be nice to debounce this).\n",
       "    setTimeout(function () { fig.push_to_output() }, 1000);\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._init_toolbar = function() {\n",
       "    var fig = this;\n",
       "\n",
       "    var nav_element = $('<div/>')\n",
       "    nav_element.attr('style', 'width: 100%');\n",
       "    this.root.append(nav_element);\n",
       "\n",
       "    // Define a callback function for later on.\n",
       "    function toolbar_event(event) {\n",
       "        return fig.toolbar_button_onclick(event['data']);\n",
       "    }\n",
       "    function toolbar_mouse_event(event) {\n",
       "        return fig.toolbar_button_onmouseover(event['data']);\n",
       "    }\n",
       "\n",
       "    for(var toolbar_ind in mpl.toolbar_items){\n",
       "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
       "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
       "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
       "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
       "\n",
       "        if (!name) { continue; };\n",
       "\n",
       "        var button = $('<button class=\"btn btn-default\" href=\"#\" title=\"' + name + '\"><i class=\"fa ' + image + ' fa-lg\"></i></button>');\n",
       "        button.click(method_name, toolbar_event);\n",
       "        button.mouseover(tooltip, toolbar_mouse_event);\n",
       "        nav_element.append(button);\n",
       "    }\n",
       "\n",
       "    // Add the status bar.\n",
       "    var status_bar = $('<span class=\"mpl-message\" style=\"text-align:right; float: right;\"/>');\n",
       "    nav_element.append(status_bar);\n",
       "    this.message = status_bar[0];\n",
       "\n",
       "    // Add the close button to the window.\n",
       "    var buttongrp = $('<div class=\"btn-group inline pull-right\"></div>');\n",
       "    var button = $('<button class=\"btn btn-mini btn-primary\" href=\"#\" title=\"Stop Interaction\"><i class=\"fa fa-power-off icon-remove icon-large\"></i></button>');\n",
       "    button.click(function (evt) { fig.handle_close(fig, {}); } );\n",
       "    button.mouseover('Stop Interaction', toolbar_mouse_event);\n",
       "    buttongrp.append(button);\n",
       "    var titlebar = this.root.find($('.ui-dialog-titlebar'));\n",
       "    titlebar.prepend(buttongrp);\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._root_extra_style = function(el){\n",
       "    var fig = this\n",
       "    el.on(\"remove\", function(){\n",
       "\tfig.close_ws(fig, {});\n",
       "    });\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._canvas_extra_style = function(el){\n",
       "    // this is important to make the div 'focusable\n",
       "    el.attr('tabindex', 0)\n",
       "    // reach out to IPython and tell the keyboard manager to turn it's self\n",
       "    // off when our div gets focus\n",
       "\n",
       "    // location in version 3\n",
       "    if (IPython.notebook.keyboard_manager) {\n",
       "        IPython.notebook.keyboard_manager.register_events(el);\n",
       "    }\n",
       "    else {\n",
       "        // location in version 2\n",
       "        IPython.keyboard_manager.register_events(el);\n",
       "    }\n",
       "\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._key_event_extra = function(event, name) {\n",
       "    var manager = IPython.notebook.keyboard_manager;\n",
       "    if (!manager)\n",
       "        manager = IPython.keyboard_manager;\n",
       "\n",
       "    // Check for shift+enter\n",
       "    if (event.shiftKey && event.which == 13) {\n",
       "        this.canvas_div.blur();\n",
       "        // select the cell after this one\n",
       "        var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n",
       "        IPython.notebook.select(index + 1);\n",
       "    }\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.handle_save = function(fig, msg) {\n",
       "    fig.ondownload(fig, null);\n",
       "}\n",
       "\n",
       "\n",
       "mpl.find_output_cell = function(html_output) {\n",
       "    // Return the cell and output element which can be found *uniquely* in the notebook.\n",
       "    // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n",
       "    // IPython event is triggered only after the cells have been serialised, which for\n",
       "    // our purposes (turning an active figure into a static one), is too late.\n",
       "    var cells = IPython.notebook.get_cells();\n",
       "    var ncells = cells.length;\n",
       "    for (var i=0; i<ncells; i++) {\n",
       "        var cell = cells[i];\n",
       "        if (cell.cell_type === 'code'){\n",
       "            for (var j=0; j<cell.output_area.outputs.length; j++) {\n",
       "                var data = cell.output_area.outputs[j];\n",
       "                if (data.data) {\n",
       "                    // IPython >= 3 moved mimebundle to data attribute of output\n",
       "                    data = data.data;\n",
       "                }\n",
       "                if (data['text/html'] == html_output) {\n",
       "                    return [cell, data, j];\n",
       "                }\n",
       "            }\n",
       "        }\n",
       "    }\n",
       "}\n",
       "\n",
       "// Register the function which deals with the matplotlib target/channel.\n",
       "// The kernel may be null if the page has been refreshed.\n",
       "if (IPython.notebook.kernel != null) {\n",
       "    IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n",
       "}\n"
      ],
      "text/plain": [
       "<IPython.core.display.Javascript object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<img src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAfQAAAH0CAYAAADL1t+KAAAgAElEQVR4nOy9eXhb1Z3/rwAJBAJJgUBLKek8QwtMpyQtTAp0oISGJEDDPuwlhQIF0tLOdFi+LcMyIYECJfBjCaVAgKGTDClBi7VYtrVZi1dZu7Xaki3bsnYp3hJI3r8/XF0sWfKWa5/r5vN6ns/zcCVLOnY+nJfOPed8jkhEEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBELMACIIgiCMe1i4ieIB1EhEEQRDsYe0iggdYJxFBEATBHtYuIniAdRIRBEEQ7GHtIoIHWCcRQRAEwR7WLiJ4gHUSEQRBEOxh7SKCB1gnEUEQBMEe1i4ieIB1EhEEQRDsYe0iggdYJxFBEATBHtYuIniAdRIRBEEQ7GHtIoIHWCcRQRAEwR7WLiJ4gHUSEQRBEOxh7SKCB1gnUSUOHDiAzz//nHUzCIIgjghYu4jgAVbJo1KpkM1mix47dOgQDh06BAD485//jB07drBoGkEQxBEHaxcRPMAqeRYsWACz2Vzx+Z07d+L73/8+hoeH57BVBEEQRyasXUTwAKvkOf744/HZZ58hFoshFArB6XSiqakJWq0WCoUCzz33HBYsWIB0Os2qiQRBEEcMrF1E8ACr5Pna176GBQsWYMGCBTjqqKNwzDHH4Nhjj8UJJ5yApUuX4swzz8S3vvUtEjpBEMQcwNpFBA+wSp7TTjsNTz31FCwWC5qammC1WuF0OtHe3o5gMIiOjg4E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o5gzZw7S09PR0tKCI0eOYPr06fjggw+E17nQYK1FhASwDiKCIAip4ZPgfv75Z/j7+8Nutws/S05OxnXXXYcHHngAer0eWq0W77//Pl566SWYTCYAgNFoxNNPP43p06djwoQJmDlzJvbs2XNBCjkPay0iJIB1EBEEQUhNRUUFjh8/jm3btsHLywvLly/H/fffj4MHDwLo3MkKCgqCv78/Jk+ejOXLl+Of//wn3G638BrNzc2w2WwXdKlaV1hrEUEQBEH0xlMKhaJNoVDkKRSKfysUiu8UCsVuhULx6y6PGcdgXgRBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEAPk/wMvzZ6Qwx6R4wAAAABJRU5ErkJggg==\" width=\"500\">"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig = plt.figure(figsize=(5, 5))\n",
    "ax = fig.add_subplot(111, projection='3d')\n",
    "\n",
    "_ = go_to_mars()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "cab30ec3f60b4e3a84ddba02248e0145"
      }
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "<function __main__.go_to_mars>"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from ipywidgets import interact\n",
    "\n",
    "interact(go_to_mars, offset=(-100., 300.), tof_=(100., 12000.))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Not bad! Hope you found it interesting. In case you didn't but are still reading, here is some music that you may enjoy:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/jpeg": "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\n",
      "text/html": [
       "\n",
       "        <iframe\n",
       "            width=\"400\"\n",
       "            height=\"300\"\n",
       "            src=\"https://www.youtube.com/embed/zSgiXGELjbc\"\n",
       "            frameborder=\"0\"\n",
       "            allowfullscreen\n",
       "        ></iframe>\n",
       "        "
      ],
      "text/plain": [
       "<IPython.lib.display.YouTubeVideo at 0x7f7311a71588>"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from IPython.display import YouTubeVideo\n",
    "YouTubeVideo('zSgiXGELjbc')"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.0"
  },
  "widgets": {
   "state": {
    "54c0bd95313945c6919cb5f7d3faba67": {
     "views": [
      {
       "cell_index": 28
      }
     ]
    }
   },
   "version": "1.2.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
